home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_a / bldmnu.src < prev    next >
Text File  |  1995-04-22  |  7KB  |  369 lines

  1. 10 ;BINARY LOAD MENU PROGRAM 
  2. 20 ;NAME OBJECT FILE D:AUTORUN.SYS 
  3. 30 ; 
  4. 40 ; RICHARD J. KALAGHER 
  5. 50 ; 
  6. 60 ;ANALOG #17  MARCH 1984 
  7. 70 ; 
  8. 80 SL    =   $C0 
  9. 90 SH    =   $C1 
  10. 0100 STL =   $C2 
  11. 0110 STH =   $C3 
  12. 0120 ENL =   $C4 
  13. 0130 ENH =   $C5 
  14. 0140 BLL =   $C6 
  15. 0150 BLH =   $C7 
  16. 0160 CIO =   $E456 
  17. 0170 ICCMD = $0342 
  18. 0180 ICBAL = $0344 
  19. 0190 ICBAH = $0345 
  20. 0200 ICAX1 = $034A 
  21. 0210 ICAX2 = $034B 
  22. 0220 ICBLL = $0348 
  23. 0230 ICBLH = $0349 
  24. 0240 ROWCRS = 84 
  25. 0250 COLCRS = 85 
  26. 0260 CRSINH = $02F0 
  27. 0270     *=  $1D7C 
  28. 0280 MENU JSR OPENSC 
  29. 0290     JSR HEADER 
  30. 0300     JSR OPEDIR 
  31. 0310 GG  JSR GETDIR 
  32. 0320     BMI FOOT 
  33. 0330     JSR DIRSCN 
  34. 0340     JMP GG 
  35. 0350 FOOT JSR FOOTER 
  36. 0360     JSR CLOSE2 
  37. 0370     JSR CLOSE3 
  38. 0380     JSR SETUP 
  39. 0390     JSR OPENK 
  40. 0400     JSR GETLET 
  41. 0410     JSR CLOSE3 
  42. 0420     JSR FINDNA 
  43. 0430     JSR OPEFIL 
  44. 0440 GETFIL JSR READ2 
  45. 0450     JSR INIT 
  46. 0460     JSR CHKFF 
  47. 0470     JSR STRAD 
  48. 0480     JSR READ2 
  49. 0490     JSR ENDAD 
  50. 0500     JSR BUFLEN 
  51. 0510     JSR GETDAT 
  52. 0520     BMI JSTART 
  53. 0530     JSR JINIT 
  54. 0540     JMP GETFIL 
  55. 0550 JINIT JMP ($02E2) 
  56. 0560 JSTART JSR CLOSE2 
  57. 0570     JMP ($02E0) 
  58. 0580 R   RTS  
  59. 0590 INIT LDA #R&$FF 
  60. 0600     STA $02E2 
  61. 0610     LDA #R/256 
  62. 0620     STA $02E3 
  63. 0630     RTS  
  64. 0640 OPEDIR LDX #$20 
  65. 0650     LDA #3 
  66. 0660     STA ICCMD,X 
  67. 0670     LDA #6 
  68. 0680     STA ICAX1,X 
  69. 0690     LDA #B1&$FF 
  70. 0700     STA ICBAL,X 
  71. 0710     LDA #B1/256 
  72. 0720     STA ICBAH,X 
  73. 0730     JSR CIO 
  74. 0740     RTS  
  75. 0750 B1  .BYTE "D1:*.*" 
  76. 0760 FNAME *= *+18 
  77. 0770     .BYTE $9B 
  78. 0780 BAL .BYTE 0 
  79. 0790 BAH .BYTE 0 
  80. 0800 OPEFIL LDX #$20 
  81. 0810     LDA #3 
  82. 0820     STA ICCMD,X 
  83. 0830     LDA #FNAME&$FF 
  84. 0840     STA ICBAL,X 
  85. 0850     LDA #FNAME/256 
  86. 0860     STA ICBAH,X 
  87. 0870     LDA #4 
  88. 0880     STA ICAX1,X 
  89. 0890     JSR CIO 
  90. 0900     RTS  
  91. 0910 GETREC LDX #$20 
  92. 0920     LDA #7 
  93. 0930     STA ICCMD,X 
  94. 0940     LDA SL 
  95. 0950     STA ICBAL,X 
  96. 0960     LDA SH 
  97. 0970     STA ICBAH,X 
  98. 0980     LDA BLL 
  99. 0990     STA ICBLL,X 
  100. 1000     LDA BLH 
  101. 1010     STA ICBLH,X 
  102. 1020     JSR CIO 
  103. 1030     RTS  
  104. 1040 READ2 LDA #BAL&$FF 
  105. 1050     STA SL 
  106. 1060     LDA #BAL/256 
  107. 1070     STA SH 
  108. 1080     LDA #2 
  109. 1090     STA BLL 
  110. 1100     LDA #0 
  111. 1110     STA BLH 
  112. 1120     JSR GETREC 
  113. 1130     RTS  
  114. 1140 BUFLEN LDA ENL 
  115. 1150     SEC  
  116. 1160     SBC STL 
  117. 1170     STA BLL 
  118. 1180     LDA ENH 
  119. 1190     SBC STH 
  120. 1200     STA BLH 
  121. 1210     CLC  
  122. 1220     LDA BLL 
  123. 1230     ADC #1 
  124. 1240     STA BLL 
  125. 1250     LDA BLH 
  126. 1260     ADC #0 
  127. 1270     STA BLH 
  128. 1280     RTS  
  129. 1290 STRAD LDA BAL 
  130. 1300     STA STL 
  131. 1310     LDA BAH 
  132. 1320     STA STH 
  133. 1330     RTS  
  134. 1340 ENDAD LDA BAL 
  135. 1350     STA ENL 
  136. 1360     LDA BAH 
  137. 1370     STA ENH 
  138. 1380     RTS  
  139. 1390 CHKFF LDX BAL 
  140. 1400     INX  
  141. 1410     BEQ TEST2 
  142. 1420     RTS  
  143. 1430 TEST2 LDX BAH 
  144. 1440     INX  
  145. 1450     BEQ ITSFF 
  146. 1460     RTS  
  147. 1470 ITSFF JSR READ2 
  148. 1480     RTS  
  149. 1490 GETDAT LDA STL 
  150. 1500     STA SL 
  151. 1510     LDA STH 
  152. 1520     STA SH 
  153. 1530     JSR GETREC 
  154. 1540     RTS  
  155. 1550 CLOSE3 LDX #$30 
  156. 1560     JMP CLB 
  157. 1570 CLOSE2 LDX #$20 
  158. 1580 CLB LDA #$0C 
  159. 1590     STA ICCMD,X 
  160. 1600     JSR CIO 
  161. 1610     RTS  
  162. 1620 GETDIR LDX #$20 
  163. 1630     LDA #5 
  164. 1640     STA ICCMD,X 
  165. 1650     LDA #FNAME&$FF 
  166. 1660     STA ICBAL,X 
  167. 1670     LDA #FNAME/256 
  168. 1680     STA ICBAH,X 
  169. 1690     LDA #18 
  170. 1700     STA ICBLL,X 
  171. 1710     LDA #0 
  172. 1720     STA ICBLH,X 
  173. 1730     JSR CIO 
  174. 1740     RTS  
  175. 1750 OPENSC LDX #$30 
  176. 1760     LDA #3 
  177. 1770     STA ICCMD,X 
  178. 1780     LDA #B4&$FF 
  179. 1790     STA ICBAL,X 
  180. 1800     LDA #B4/256 
  181. 1810     STA ICBAH,X 
  182. 1820     LDA #8 
  183. 1830     STA ICAX1,X 
  184. 1840     LDA #0 
  185. 1850     STA ICAX2,X 
  186. 1860     JSR CIO 
  187. 1870     LDA #1 
  188. 1880     STA CRSINH 
  189. 1890     RTS  
  190. 1900 B4  .BYTE "E:" 
  191. 1910 WRITES LDX #$30 
  192. 1920     LDA #$0B 
  193. 1930     STA ICCMD,X 
  194. 1940     LDA STL 
  195. 1950     STA ICBAL,X 
  196. 1960     LDA STH 
  197. 1970     STA ICBAH,X 
  198. 1980     LDA BLL 
  199. 1990     STA ICBLL,X 
  200. 2000     LDA BLH 
  201. 2010     STA ICBLH,X 
  202. 2020     JSR CIO 
  203. 2030     RTS  
  204. 2040 HEADER LDA #1 
  205. 2050     STA ROWCRS 
  206. 2060     LDA #10 
  207. 2070     STA COLCRS 
  208. 2080     LDA #B5&$FF 
  209. 2090     STA STL 
  210. 2100     LDA #B5/256 
  211. 2110     STA STH 
  212. 2120     LDA #16 
  213. 2130     STA BLL 
  214. 2140     LDA #0 
  215. 2150     STA BLH 
  216. 2160     JSR WRITES 
  217. 2170     INC ROWCRS 
  218. 2180     RTS  
  219. 2190 B5  .BYTE "    Disk Menu   " 
  220. 2200 NUMKEY .BYTE "A" 
  221. 2210 OFFSET .BYTE 0 
  222. 2220 DIRSCN JSR CHKSYS 
  223. 2230     JSR CHKFRE 
  224. 2240     LDA #FNAME&$FF 
  225. 2250     STA STL 
  226. 2260     LDA #FNAME/256 
  227. 2270     STA STH 
  228. 2280     LDA #10 
  229. 2290     STA BLL 
  230. 2300     LDA #0 
  231. 2310     STA BLH 
  232. 2320     INC ROWCRS 
  233. 2330     LDY #6 
  234. 2340     LDA NUMKEY 
  235. 2350     CMP #78 
  236. 2360     BCC FIRCOL 
  237. 2370     LDY #24 
  238. 2380     LDA ROWCRS 
  239. 2390     CMP #16 
  240. 2400     BNE FIRCOL 
  241. 2410     LDA #3 
  242. 2420     STA ROWCRS 
  243. 2430 FIRCOL STY COLCRS 
  244. 2440     LDA NUMKEY 
  245. 2450     STA FNAME 
  246. 2460     LDA #45 
  247. 2470     STA FNAME+1 
  248. 2480     JSR PUTBUF 
  249. 2490     JSR WRITES 
  250. 2500     INC NUMKEY 
  251. 2510     RTS  
  252. 2520 CHKSYS LDA FNAME+10 
  253. 2530     CMP #83 
  254. 2540     BNE NOTSYS 
  255. 2550     LDA FNAME+11 
  256. 2560     CMP #89 
  257. 2570     BNE NOTSYS 
  258. 2580     LDA FNAME+12 
  259. 2590     CMP #83 
  260. 2600     BNE NOTSYS 
  261. 2610     PLA  
  262. 2620     PLA  
  263. 2630 NOTSYS RTS  
  264. 2640 CHKFRE LDA FNAME+1 
  265. 2650     CMP #$20 
  266. 2660     BEQ NOTFRE 
  267. 2670     PLA  
  268. 2680     PLA  
  269. 2690 NOTFRE RTS  
  270. 2700 FOOTER LDA #20 
  271. 2710     STA ROWCRS 
  272. 2720     LDA #4 
  273. 2730     STA COLCRS 
  274. 2740     LDA #B6&$FF 
  275. 2750     STA STL 
  276. 2760     LDA #B6/256 
  277. 2770     STA STH 
  278. 2780     LDA #31 
  279. 2790     STA BLL 
  280. 2800     LDA #0 
  281. 2810     STA BLH 
  282. 2820     JSR WRITES 
  283. 2830     RTS  
  284. 2840 B6  .BYTE "Press the letter" 
  285. 2850     .BYTE " of your choice" 
  286. 2860 OPENK LDX #$30 
  287. 2870     LDA #3 
  288. 2880     STA ICCMD,X 
  289. 2890     LDA #B7&$FF 
  290. 2900     STA ICBAL,X 
  291. 2910     LDA #B7/256 
  292. 2920     STA ICBAH,X 
  293. 2930     LDA #4 
  294. 2940     STA ICAX1,X 
  295. 2950     JSR CIO 
  296. 2960     RTS  
  297. 2970 B7  .BYTE "K:" 
  298. 2980 PUTBUF LDY #0 
  299. 2990     LDX OFFSET 
  300. 3000     LDA (STL),Y 
  301. 3010     ORA #$80 
  302. 3020     STA NBUFF,X 
  303. 3030     INX  
  304. 3040     INY  
  305. 3050     INY  
  306. 3060 P1  LDA (STL),Y 
  307. 3070     STA NBUFF,X 
  308. 3080     CMP #32 
  309. 3090     BEQ P2 
  310. 3100     INX  
  311. 3110     INY  
  312. 3120     CPY #10 
  313. 3130     BCC P1 
  314. 3140     LDA #32 
  315. 3150     STA NBUFF,X 
  316. 3160 P2  STX OFFSET 
  317. 3170     INC OFFSET 
  318. 3180     RTS  
  319. 3190 LETTER .BYTE 0 
  320. 3200 FINDNA LDX #0 
  321. 3210 L1  LDA NBUFF,X 
  322. 3220     INX  
  323. 3230     CMP LETTER 
  324. 3240     BNE L1 
  325. 3250     LDA #68 
  326. 3260     STA FNAME 
  327. 3270     LDA #58 
  328. 3280     STA FNAME+1 
  329. 3290     LDY #0 
  330. 3300 L2  LDA NBUFF,X 
  331. 3310     STA FNAME+2,Y 
  332. 3320     INX  
  333. 3330     INY  
  334. 3340     CMP #$20 
  335. 3350     BNE L2 
  336. 3360     DEY  
  337. 3370     LDA #46 
  338. 3380     STA FNAME+2,Y 
  339. 3390     INY  
  340. 3400     LDA #42 
  341. 3410     STA FNAME+2,Y 
  342. 3420     INY  
  343. 3430     LDA #$20 
  344. 3440     STA FNAME+2,Y 
  345. 3450     RTS  
  346. 3460 GETLET LDX #$30 
  347. 3470     LDA #7 
  348. 3480     STA ICCMD,X 
  349. 3490     LDA #0 
  350. 3500     STA ICBLL,X 
  351. 3510     STA ICBLH,X 
  352. 3520     JSR CIO 
  353. 3530     CMP #65 
  354. 3540     BCC GETLET 
  355. 3550     CMP NUMKEY 
  356. 3560     BCS GETLET 
  357. 3570     ORA #$80 
  358. 3580     STA LETTER 
  359. 3590     RTS  
  360. 3600 SETUP LDA #R&$FF 
  361. 3610     STA $02E0 
  362. 3620     LDA #R/256 
  363. 3630     STA $02E1 
  364. 3640     RTS  
  365. 3650 NBUFF = * 
  366. 3660     *=  $02E2 
  367. 3670     .WORD MENU 
  368. 3680     .END  
  369.